1. Field
The present disclosure relates to a system and method of file transmissions, more specifically, a Peer to Peer (P2P) file transmission system and method which sends and receives files by a direct connection between peers.
2. Discussion of the Related Art
P2P is a technology for searching and exchanging files between computers. P2P sharing can be between individual clients and a server, or by sharing IP addresses between clients. Napster is an example of commercial P2P service.
P2P can be used to exchange files, such as music files. But, P2P can also be applied to various fields, such as file transmissions between users in messenger systems, voice data transmissions in internet phones, etc.
Unfortunately, P2P can suffer from improper file transmissions under specific network environments. As an example, when a client uses Network Address Translation (NAT), a normal P2P transmission of files often fails. Especially, when both the sender and the receiver use NAT, P2P transmission problems can become worse.
NAT is used frequently. The use of NAT allows multiple users using private IP addresses to share one public IP address by inter-conversion of the private IP addresses to the public IP address so that limited public IP address resources can be saved. In addition, NAT helps protect users' terminals from external attacks and provides many merits in security.
Unstable P2P file transmissions highlight the use of NAT and various security protection systems. In order to overcome the instability of P2P file transmission in NAT, a UDP hole punching method has been suggested, but this solution is limited to UDP. And, the instability problem with NAT cannot be solved entirely by known solutions, such as hole punching.